/**
    Promise(允许) 
       => 1. Promise从语法上说是一个对象
             new Promise()
       => 2. 更优雅的处理异步任务结果, 封装异步任务
                处理异步任务结果
                  回调函数
       => 3. 用法 
              // 1. resovle 处理异步任务成功结果的函数
              // 2. reject 处理异步任务失败结果的函数
              new Promise(function(resovle,reject){
                   // 3.函数体 封装异步任务
                      已经学过的异步
                         异步读取文件
                         异步写文件
                         定时器  setTimtout()  setInterval()
                          ajax异步网络处理 
              })              
                  
              实例化一个promise对象，对象方法参数是一个函数，函数中有两个方法参数resovel处理成功结果，reject处理失败结果
              函数体封装异步任务

       =>4. 在其它任务地方，获取promise对象，调用then获取成功结果，调用catch方法获取失败结果


 */
const fs = require('fs') //引入文件操作模块

const promise = new Promise(function (resovel, reject) {
	//封装异步读文件
	fs.readFile('demo1.txt', 'utf-8', function (err, data) {
		if (err) {
			reject(err) //失败结果
			return
		}
		resovel(data.toString()) // 处理成功结果
	})
})

promise.then(data => {
	console.log('成功结果是 ', data)
})

promise.catch(err => {
	console.log('失败结果是 ', err)
})


